package testes;

import static org.junit.Assert.*;

import java.util.Vector;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import projeto.Cliente;
import projeto.Filme;
import projeto.Gerente;
import projeto.Locacao;
import projeto.Locadora;
import projeto.LocarFilmes;

public class PagarValorLocacaoTest {

		Locadora locadoralanna;
		Cliente cl1, cl2;
		Vector<Cliente> clientes =  new Vector();
		Locacao lc1, lc2;
		Filme fl1, fl2, fl3;
		LocarFilmes lf;
		Gerente gerente;
		@Before
		public void prepararTesteIniciarDevolucao(){
			locadoralanna = new Locadora();
			
			cl1 = new Cliente("c1","123","Maylon");
			cl2= new Cliente("c2","456","Aline");
			
			fl1 = new Filme(0, "Titanic", "Navio Afunda");
			fl2 = new Filme(1, "Conan", "Bruto");
			fl3 = new Filme(2, "Diario da Princesa", "Um saco");
			
			clientes.add(cl1);
			clientes.add(cl2);
			
			locadoralanna.setClientes(clientes);
			
			gerente = new Gerente();
			locadoralanna.setGerente(gerente);
			
			lf = new LocarFilmes(locadoralanna);
		}
			
			
		@Test
		public void testPagarValorLocacao() {
			lf.iniciarOperacao("c1");
			Assert.assertEquals("c1", lf.getCliente().getCartaoAVS());
			
			Assert.assertEquals(7.0, lf.tomarEmprestado(fl1),0);
			Assert.assertEquals(7.0, fl1.getLocacao().getValorTotal(),0);
			Assert.assertEquals(fl1, lf.getCliente().buscarLocacoes(0));
			
			Assert.assertEquals(14.0, lf.tomarEmprestado(fl2),0);
			Assert.assertEquals(fl2, lf.getCliente().buscarLocacoes(1));
			Assert.assertEquals(fl2, lf.getCliente().buscarLocacoes(1));
			
			Assert.assertEquals(21.0, lf.tomarEmprestado(fl3),0);
			Assert.assertEquals(fl3, lf.getCliente().buscarLocacoes(2));
			Assert.assertEquals(fl3, lf.getCliente().buscarLocacoes(2));
			Assert.assertEquals("Pagamento Realizado", lf.pagarValorLocacao());
		}

	}
